1. Field of the Invention
The present invention relates to development of a universal application decode engine which can be programmed to decode a packet stream and identify the application which is generating that packet stream and extract further information such as current transaction and transaction parameters of the application from the packet stream. This extracted application knowledge could be used for a variety of purposes including enforcement of specific policies based on application and transactions. Specifically, the application decode engine is able to decode the IP packets flowing through it up to application layer (of OSI 7 layer model), identify the transaction(s) of the application and any associated parameters of the transaction in real time (at high speeds of the order of Gigabits/sec).
2. Description of Related Art
The explosive growth of Internet has resulted into a host of new application traffic flowing in the Internet. The traffic characteristics of various applications in terms of quality of service (QoS) requirements is different for different applications. While some applications are delay sensitive, others may be more loss sensitive. Some applications may require some minimum guaranteed bandwidth to work properly while others may generate small burst of high priority traffic. From the user perspective, the response time for an application may be more important in case of certain type of transactions as compared to other transactions of the same application. Thus the ability to identify the application and transactions underway associated with each packet stream is very essential for the emerging set of Internet devices for them to be able to differentiate between all the packet streams flowing through them and provide different QoS and traffic treatment to individual packet stream.
In the past, a number of protocol decode algorithms/implementations have been done as part of network analysis devices. Most of these have not taken a generic approach and require development of specific piece of code to decode newer applications. Some of the implementations have taken a generic approach but are limited to decoding each individual packet independently in a packet stream and are not able to extract/associate application knowledge from multiple packets seen as a stream.